package com.ponhu.ea2.goodsCenter.provider.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ponhu.ea2.entity.Material;
import com.ponhu.ea2.entity.PhModel;
import com.ponhu.ea2.vo.PhMaterialVo;

import java.util.List;

/**
 * @author zhaokai
 */
public interface MaterialService extends IService<Material> {

    /**
     * 根据物料编码模糊查询物料信息集合
     *
     * @param materialCode
     * @return
     */
    Material getOneMaterialByCode(String materialCode);

    /**
     * 根据物料编码模糊查询物料信息集合(模糊查询)
     *
     * @param materialCode
     * @return
     */
    List<Material> getMaterialByCode(String materialCode);

    /**
     * 根据品牌或系列查询所有物料型号
     *
     * @param brandId
     * @param seriesId
     * @return
     */
    List<Material> getPhModelsByBrandOrSeries(Long brandId, Long seriesId);

    /**
     * 根据物料编码拿物料信息
     *
     * @param materialCode
     * @return
     */
    PhMaterialVo getMaterialVoByCode(String materialCode);

    /**
     * 根据条件获取物料
     *
     * @param categoryId 三级分类Id
     * @param brandId    品牌
     * @param seriesId   系列Id
     * @param modelId    型号Id
     * @return
     */
    Material getMaterialByCondition(Long categoryId, Long brandId, Long seriesId, Long modelId);

    /**
     * 根据物料编码更新物料信息
     *
     * @param material
     * @param materialCode
     * @return
     */
    boolean updateMaterialByMaterialCode(Material material, String materialCode);

    List<Material> getMaterialsByCodes(List<String> materialCodes);

}
